#ifndef WORK_BENCH_MANANGER_H_H_H_H_
#define WORK_BENCH_MANANGER_H_H_H_H_
#include <map>
#include <list>
using namespace std;
class Workbench;
class WorkbenchManager
{
public:
	WorkbenchManager(void);
	~WorkbenchManager(void);

public:
	static WorkbenchManager* instance();
	static void destruct();

	Workbench* createWorkbench(const std::string& name);
	void removeWorkbench(const std::string& name);

	Workbench* getWorkbench(const std::string& name)const;

	bool activate(const std::string& name);

	Workbench* active()const;

	std::list<std::string> workbenches();

private:

	std::map<std::string,Workbench*> _workbenches;

	Workbench* _activeWorkbench;

	static WorkbenchManager* _instance;
};
#endif